package org.vison.wonfu.framework.commons.tools.debounce;

//import org.intellij.lang.annotations.Language;

import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * 防抖注解
 * 在指定时间内，只执行最后一次请求
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Debounce {

    /**
     * 防抖时间
     */
    long value() default 1000;

    /**
     * 时间单位，默认毫秒
     */
    TimeUnit unit() default TimeUnit.MILLISECONDS;

    /**
     * SpEL表达式，支持：
     * - #参数名.属性（需有getter）
     * - #类成员变量（需有getter）
     */
    String key() default "";

    /**
     * 防抖触发时的提示信息
     */
    String message() default "操作过于频繁，请稍后再试";
}